home *** CD-ROM | disk | FTP | other *** search
-
- Der Gepard-Editor
- =================
-
-
- Dokumentation v. Jürgen Müller; Stand: 17.7.89
- Korrekturen von Thomas Tempelmann; Editor-Version: 2.I
- Erweiterungen von Wilfried Hübner.
-
-
- Hinweis
- -------
-
- Der hier beschriebene Editor "GEP_ED.MOD" wurde von Hans-Jörg Himmeröder,
- Ulf Reimann, Thomas Tempelmann und Wilfried Hübner erstellt. Ausschließlich
- Besitzern des Megamax Modula-2 ist es gestattet, diesen Editor, auch in
- gelinkter Form, zur Programmerstellung zu verwenden. Die Weitergabe ist
- ebenfalls nur an solche Personen erwünscht.
-
- Interessenten, die nicht das Modula-2 System besitzen, mögen sich bitte
- an Thomas Tempelmann, Nordendstr. 64, 8 München 40, oder Application
- Systems /// Heidelberg wenden. Verbesserungsvorschläge ebenfalls an TT
- (Erreichbar auch in der Mailbox MAUS München, 089/654708, Parameter
- 300/1200/2400 Baud; 8N1).
-
- Am Ende dieses Textes befindet sich ein Report, der die Veränderungen zu
- älteren Versionen dieses Programms aufführt.
-
-
- Einführung
- ----------
-
- Der Gepard-Editor ist ein alternativer Editor für das Megamax Modula-System
- Er eignet sich zur Eingabe (und Korrektur) der Programmtexte. Die Texte
- werden als Standard-ASCII-Dateien abgelegt. Die für einen GEM-Verwöhnten
- Benutzer ungewöhnliche Bedienung ist dem bewährten Editor des auf vielen
- Rechnern verfügbaren UCSD-Pascal-Systems nachempfunden. Seine besonderen
- Vorteile liegen in seiner Kürze und guten Integration ins Megamax Modula-2
- System. Gegenüber anderen Editoren heben sich besonders die Möglicheiten
- hervor, per Tastendruck die Positionen letzen 16 Änderungen abzufragen
- (die sogar abgespeichert werden !) und das Suchen von Worten, indem, statt
- den Text extra einzutippen, einfach mit dem Cursor auf das gesuchte Wort
- gezeigt wird. Machen Sie sich deshalb die Mühe, ihn etwas besser kennen-
- zulernen, auch wenn er Ihnen anfangs sehr spartanisch vorkommt.
-
- Der Editor ist speziell zum Schreiben von Programmtexten konzipiert worden.
- Ihre Briefe werden Sie vielleicht auch weiterhin mit einer speziellen Text-
- verarbeitung schreiben wollen; zum Programmieren bietet Ihnen der Gepard-
- Editor aber eine Reihe nützlicher Sonderfunktionen bei übersichtlicher Be-
- dienung. Zwar können Sie prinzipiell jeden Editor verwenden, der ASCII-Dateien
- erzeugt - die Vorteile liegen bei diesem Editor v.A. in seiner Kompaktheit
- und seiner optimalen Einbindung ins Megamax Modula-2 System. Außerdem ist
- dieser Editor auch mit Farbmonitoren verwendbar, was bei dem Toolbox-Editor
- nicht möglich ist.
-
- Zur Beachtung: Der Editor läuft nur mit den Standard-Auflösungen des Atari ST.
- Für Großbildschirme und andere Grafikmodi (z.B. durch externe Grafikkarte)
- ist noch keine Anpassung vorgenommen worden. Wird der Editor im Farbmodus
- mit der kleinen Auflösung (320*200 Punkte, 16 Farben) gestartet, schaltet
- er selbstständig auf die mittlere Auflösung um, damit weiterhin 80 Zeichen
- pro Zeile sichtbar sind. Beim Verlassen des Editor wird selbstverständlich
- die alte Auflösung wiederhergestellt.
-
- Die folgende Anleitung stellt Ihnen die Funktionen des Editors in der Rei-
- henfolge vor, in der sie für Sie wichtig werden. Sie sollten alles Gelesene
- gleich im Editor ausprobieren. Um diesen Editor als Standard-Editor unter
- dem Megamax M-2 zu verwenden, müssen Sie in der SHELL.INF-Datei die Anweisung
- "Editor GEP_ED.MOD" stehen haben und die evtl. vorhandenen Anweisungen
- "Toolbox" und "SearchSources" entfernen. Außerdem bietet es sich an, mit
- "Load GEP_ED.MOD" den Editor resident zu laden.
-
- <Spitze Klammern> verwenden wir im Folgenden, um Tastennamen zu bezeichnen.
- Statt der angegebenen Großbuchstaben können Sie für alle Kommandos auch
- Kleinbuchstaben verwenden.
-
-
- Aufruf des Editors
- ------------------
-
- Ist der Editor, wie oben beschrieben, als Modula-Editor eingestellt, kann
- er wie üblich von der Shell aus aufgerufen werden. Es ist auch möglich,
- den Editor zu linken (Achtung: in den Linker-Optionen 'GEMIO' und 'GEMERROR'
- deaktivieren - nur 'M2INIT' bleibt aktiv). Dann sollte man der erzeugten
- PRG-Datei die Endung '.TOS' oder '.TTP' geben. Dann kann der Editor auch
- vom Desktop aus gestartet werden.
-
-
- Die Kopfzeile
- -------------
-
- Der Editor ist 'Modus-orientiert' - das heißt, daß Sie aus einem übergeordneten
- Editier-Modus heraus Funktionen wie Einfügen, Löschen oder Suchen aufrufen
- können. (Außerdem können Sie im Editier-Modus den Cursor durch den Text
- bewegen.) Den aktiven Modus und die wichtigsten möglichen Funktionen 'souff-
- liert' Ihnen der Editor in der obersten Bildschirmzeile, der 'Kopfzeile'. Die
- Kopfzeile sieht z.B. so aus:
- >2 Jump: B(egin, E(nd, L(ast or tag
- und enthält folgende Informationen:
-
- * Die Arbeitsrichtung: Gibt an, in welcher Richtung der Editor (beginnend
- bei der Cursorposition) vorgehen soll, wenn im Text gesucht oder ersetzt
- wird. Auch die Cursorbewegung mit der <Return>-Taste wird durch die
- Arbeitsrichtung bestimmt. '>' steht für 'vorwärts', '<' für 'rückwärts'.
- Mit diesen beiden Tasten können Sie im Editier-Modus die Arbeitsrichtung
- auch umschalten. Außerdem sind '+' oder '.' zum Vorwärts- sowie '-' oder
- ',' zum Rückwärtsschalten möglich.
-
- * Die Textebene: Der Editor kann nach Art eines Stacks (Stapelspeicher)
- mehrere Texte gleichzeitig verwalten. Wieviele Texte noch 'unter' dem
- gerade editierten auf dem Stapel sind, wird hier angezeigt (normalerweise
- Null).
-
- * Der Modus: Die gerade aktive Funktion des Editors. Direkt nach dem
- Aufruf 'Edit', beim Arbeiten z.B. 'Insert', 'Delete' etc.
-
- * Ein Menu listet die wichtigsten Kommandos oder Tasten auf, die im
- aktiven Modus unterstützt werden. Im Edit-Modus gibt es besonders viele
- solcher Kommandos; dort können Sie mit <Help> das Menu weiterschalten,
- wenn Sie zusätzliche Informationen brauchen.
-
- Durch Eingabe eines Fragezeichens im Edit-Modus können Sie außerdem einige
- Informationen über den bearbeiteten Text (Länge, freier Platz, Zeilenzahl,
- Cursorposition) in der Kopfzeile anzeigen lassen.
-
-
- Cursorbewegung
- --------------
-
- Nach dem Aufruf des Editors befinden Sie sich im 'Edit'-Modus. Außer den in
- der Kopfzeile aufgeführten Kommandos können Sie hier den Cursor durch den Text
- bewegen:
-
- * Die Pfeiltasten bewegen den Cursor um jeweils eine Position. Mit den
- horizontalen Pfeilen können Sie über Zeilenanfang bzw. -ende hinaus in die
- benachbarten Zeilen gelangen. Wenn Sie mit den vertikalen Pfeilen die
- Zeile wechseln, bleibt der Cursor normalerweise in der alten Spalte - nur
- wenn die angesteuerte Zeile dort keinen Text enthält, wird der Cursor in
- die nächste nichtleere Spalte versetzt.
-
- * Die <Return>-Taste bewegt den Cursor in die nächste Zeile in Arbeits-
- richtung (siehe Absatz 'Die Kopfzeile') und setzt ihn dort an den Zeilen-
- anfang. Beim Bewegen des Cursors werden Sie feststellen, daß der Editor
- einen variablen linken Rand berücksichtigt: Führende Leerzeichen vor den
- Zeilen können Sie mit dem Cursor nicht erreichen. Bei Modula-Programmen,
- in denen ja oft weit eingerückt wird, steht der Cursor daher immer am
- Beginn der wesentlichen Informationen. (Um den linken Rand zu verändern,
- verwenden Sie das 'Adjust'-Kommando.)
-
- * <Tab> bewegt den Cursor nach rechts zur nächsten Tabulatorposition;
- <Shift>-<Tab> analog zum nächsten Tabulator nach links.
-
- * Wird gleichzeitig <Shift> bei Betätigen der horizontalen Cursortasten
- festgehalten, bewegt sich der Cursor immer zum Anfang des nächsten
- bzw. vorigen Wortanfangs.
-
- * Zum seitenweisen Blättern im Text gibt es das Tastenpaar Page und Op-
- posite Page. <P> bewegt den Cursor um 20 Zeilen vorwärts; der Text wird
- anschließend so auf dem Bildschirm dargestellt, daß der Cursor in der
- gleiche Höhe wie zuvor steht. <O> bewegt analog den Cursor um 20 Zeilen
- zurück. Ebenso kann das Blättern mit <Shift>-<Cursor Up/Down> erfolgen.
-
- * <Control>-<Cursor Left/Right> bewegen den Cursor zum Anfang bzw. Ende
- der Zeile.
-
- * <Control>-<Cursor Up/Down> scrollen den Text auf/ab.
-
- * <Home> oder <M> (wie MidScreen) lassen den Cursor im Text an der
- alten Position, bauen aber den Bildschirm neu auf, so daß die Cursorzeile
- in der Mitte steht.
-
- * Wiederholungs-Faktoren können Sie mit allen Cursorbewegungen verwenden:
- Bevor Sie eine Cursortaste betätigen, können Sie eine (auch mehrstellige)
- Dezimalzahl eingeben. Die direkt anschließend ausgelöste Cursorbewegung
- wird dann entsprechend oft wiederholt. Einen irrtümlich oder fehlerhaft
- eingegebenen Wiederholungsfaktor löschen Sie, indem Sie anschließend <ESC>
- oder <Undo> drücken.
-
- * Durch Drücken der linken Maustaste wird der Cursor auf die Position
- des Mauszeigers gesetzt. Steht der Mauszeiger am oberen oder unteren
- Bildrand, so wird der Text in die entsprechende Richtung gescrollt,
- solange man die linke Mautaste gedrückt hält.
-
-
- Eingabe von Text
- ----------------
-
- Um neuen Text einzugeben, bewegen Sie den Cursor im Edit-Modus an die
- richtige Stelle und rufen Sie durch <I> oder <Insert> den Insert-Modus auf.
- Jetzt können Sie Text eingeben. Folgende Tasten haben besondere Funktionen:
-
- * <Backspace> oder <Linkspfeil> löscht zeichenweise den eingegebenen
- Text wieder.
-
- * <Return> bewirkt einen Wechsel in die nächste Zeile. Dabei wird automa-
- tisch so weit eingerückt wie in der Zeile darüber. Korrektur der Einrückung
- durch <Backspace> oder horizontale Pfeiltasten.
-
- * <Tab> und <Control Q> bewegen den Cursor zum nächsten Tabulator nach
- rechts bzw. links; dabei werden Leerzeichen eingefügt bzw. eingefügter
- Text wieder gelöscht.
-
- * <Enter>, <F1> oder <Control C> verlassen den Insert-Modus; der einge-
- gebene Text wird in die Datei eingefügt und in den Kopierpuffer (s.u.)
- übernommen.
-
- * <ESC> oder <Undo> verlassen den Insert-Modus; der eingegebene Text
- wird verworfen! Trotzdem wird der Text in den Kopierpuffer übernommen,
- er kann also an anderer Stelle (oder nach versehentlichem <Undo>) wieder
- in die Datei eingefügt werden.
-
-
- Löschen von Text
- ----------------
-
- Um Text zu löschen, bewegen Sie den Cursor auf den Anfang oder das Ende
- der zu löschenden Passage. Dann rufen Sie mit <D> oder <Delete> den Delete-
- Modus auf. Im Delete-Modus funktionieren alle Cursorbewegungen (einschließ-
- lich Wiederholungsfaktoren). Der Text, über den Sie den Cursor bewegen, wird
- jedoch gelöscht.
-
- Solange Sie den Delete-Modus nicht verlassen haben, können Sie zu weite
- Cursorbewegungen durch einfaches Zurückholen des Cursors korrigieren; der
- Text erscheint wieder. Durch <Enter> oder <F1> verlassen Sie den Delete-Modus,
- der Text wird endgültig gelöscht. Allerdings wird die Passage in den Kopier-
- puffer übernommen und kann von dort wieder in die Datei eingefügt werden.
-
- <ESC> oder <Undo> verlassen den Delete-Modus, ohne daß Text aus der Datei
- gelöscht wird. Die mit dem Cursor überstrichene Passage wird nur in den
- Kopierpuffer übernommen (nützlich zum Herauskopieren von Textstücken).
-
- Zum Löschen längerer Passagen ist das Delete-Kommando etwas umständlich
- - man würde lieber nur Anfang und Ende der Passage suchen und markieren.
- Dazu dient das Zap-Kommando: Im Edit-Modus Anfang oder Ende des zu
- löschenden Blocks aufsuchen und durch <D> <ESC> markieren. Nun die andere
- Begrenzung des Blocks ansteuern und durch <Z> das Zap-Kommando auslösen.
- Vor dem Löschen längerer Passagen wird noch einmal nachgefragt; in jedem
- Fall landet der gelöschte Text aber im Kopierpuffer und kann somit wieder
- hervorgeholt werden.
-
-
- Ändern von Text
- ---------------
-
- Oft ist es lästig, kleine Änderungen (etwa Tippfehler) durch abwechselndes
- Löschen und Einfügen zu bearbeiten. Der Exchange-Modus (aufgerufen durch <X>)
- bietet die Möglichkeit, Zeichen auf dem Bildschirm direkt zu überschreiben.
- Die Änderungen werden nicht gepuffert, können also nicht automatisch rück-
- gängig gemacht werden. Folgende Tasten haben Sonderfunktionen:
-
- * <Return> und die Pfeiltasten (auch m. <Shift>) bewegen den Cursor.
- * <Insert> fügt an der Cursorposition ein Leerzeichen ein.
- * <Delete> löscht das Zeichen unter dem Cursor.
- * <Backspace> löscht das Zeichen vor dem Cursor.
- * <Enter>, <F1>, <ESC> und <Undo> verlassen den Exchange-Modus.
-
-
- Laden und Speichern, Wechseln des Textes
- ----------------------------------------
-
- Welches Dokument er laden soll, erfragt der Editor schon beim Start, bevor
- Sie in den Edit-Modus gelangen. Hierzu erscheint die File-Select-Box.
- Auch nachträglich ist es aber möglich, zu einem anderen Dokument überzugehen.
- Dazu dient das New-Kommando: Nach Eingabe von <N> können Sie den Dateinamen
- des zu bearbeitenden Dokumentes bestimmen.
-
- Falls das alte Dokument im Speicher geändert wurde, fragt New nach, ob Sie
- die geänderte Textversion wirklich verwerfen wollen, indem Sie ein anderes
- Dokument laden. Die Antwort <N> oder <ESC> führt zurück in den Edit-Modus.
-
- Um einen Text auf Diskette zu speichern, rufen Sie durch <Q> das Quit-Menu
- auf. Es wird eine Auswahl von Unterkommandos zum Sichern und weiteren
- Bearbeiten des Textes aufgelistet:
-
- <ESC>, <Return> oder <Undo> kehren zurück zum Edit-Modus (bei irrtüm-
- lichem Quit, oder wenn Sie nach dem Speichern weiterarbeiten wollen).
-
- <E>xit verläßt den Editor, ohne den Text zu speichern. Ist der Text
- nach dem letzten Speichern verändert worden, fragt der Editor, ob Sie
- die Änderungen wirklich verwerfen wollen.
-
- <N>ew filename speichert den Text unter einem anzugebenden Namen. Hat
- der Text noch keinen Namen (weil er gerade vollständig neu eingegeben
- ist), dann kann zunächst nur dieses Kommando verwendet werden. Der
- Name wird vom Editor für weitere Speicherkommandos gemerkt.
-
- <W>rite a file speichert den Text ebenfalls unter einem anzugebenden Namen.
- Der Name wird aber nur für diese Speicheroperation verwendet und nicht
- für spätere Kommandos übernommen (nützlich, um zwischendurch ein Backup
- auf eine andere Diskette zu schreiben).
-
- <S>ave as ... speichert den Text unter dem angezeiten Namen. Das meist-
- gebrauchte Kommando, um zwischendurch gelegentlich die Arbeit auf Dis-
- kette zu sichern.
-
- <B>ackup and save as ... speichert ebenfalls den Text unter dem angege-
- benen Namen. Falls eine Datei unter diesem Namen schon vorhanden ist,
- wird deren Suffix (Endung) zuvor in 'BAK' umbenannt.
-
- <U>pdate (Save & Exit) speichert den Text unter dem angegeben Namen und
- verläßt (falls das Speichern fehlerlos verlief) den Editor. Üblich zum
- Beenden des Edierens.
-
- <C>ompile (Update & Compile) verhält sich wie Update, läßt aber anschlie-
- ßend den Compiler den gespeicherten Text übersetzen. Dieses Kommando
- können Sie während der Programmentwicklung vorteilhaft verwenden - mit
- einem Tastendruck veranlassen Sie einen Compilerversuch; bei Fehlern
- bringt Sie ein weiterer Tastendruck wieder in den Editor zur Fehlerkor-
- rektur.
-
- e<X>ecute (Update & Run) setzt auf 'Compile' noch eins drauf: Falls der
- Übersetzungsversuch erfolgreich ist, wird das übersetzte Programm auch
- gleich gestartet. Bei Compilierfehlern haben Sie natürlich auch hier die
- Wahl, den Fehler im Editor zu beheben.
-
- <O>ther Filename ändert ausschließlich den gemerkten Namen für spätere
- Speicherkommandos; es wird keine Speicherung ausgelöst.
-
- <I>ncrement Version schließlich hat mit dem Speichern eigentlich nichts
- zu tun; Sie sollen aber vor dem Speichern an diese Möglichkeit erinnert
- werden. Der Editor kann eine Versionsnummer im Text suchen und automa-
- tisch erhöhen. Dazu muß (in einem Kommentar oder einer Stringkonstanten)
- die Zeichenfolge 'V#' und beliebig viele Dezimalziffern hinter dem Kopf
- 'V#' ohne Leerzeichen stehen. Wahlweise können Sie den Editor anweisen,
- bei jedem Speichervorgang automatisch diese Versionsnummer zu erhöhen.
- Lesen Sie dazu bitte den Abschnitt 'Environment'.
-
-
- Ausgabe auf Drucker
- -------------------
-
- Die Hardcopy-Funktion erlaubt es, den gesamten Text, den Text der gerade
- sichtbaren Seite oder den Text im Kopierpuffer zu drucken. Drücken Sie
- dazu <H> und dann wahlweise <S> (sichtbare Seite), <A> (alles) oder <B>
- (Puffer). Ist kein Drucker angeschlossen oder ist er Off-Line, warten Sie,
- ca. 30 Sekunden. Dann erscheint oben in der Statuszeile die Meldung
- "Printer: Offline" und der Druckvorgang wird abgebrochen. Während des
- Druckens ist der Abbruch mit <Esc> oder <Home> möglich (ggf. auch hier
- 30 Sekunden warten!). Übrigens: Am Druckende wird immer noch eine CR/LF-
- Kombination ausgegeben. Das hat den netten Nebneffekt, daß das Drucken
- eine leeren Puffers (Puffer leeren mit <D> <Esc>, Drucken mit <H> <B>)
- immer einen Zeilenvorschub bewirkt.
-
-
- Suchen und Ersetzen
- -------------------
-
- Das Find-Kommando dient zum Suchen von Zeichenketten im Text. Nach Eingabe
- von <F> fragt der Editor Sie (in der Kopfzeile) nach der zu suchenden
- Zeichenkette. Die Eingabe wird mit <Return> abgeschlossen. Die Suche beginnt
- an der Cursorposition und läuft in der eingestellten Arbeitsrichtung weiter.
- Normalerweise wird jedes Vorkommen der Zeichenkette auf dem Bildschirm
- angezeigt; in der Kopfzeile erscheint die Frage, ob die Suche fortgesetzt
- werden soll.
-
- Entsprechend funktioniert das Replace-Kommando zum Ersetzen von Zeichenket-
- ten. Nach <R> müssen Sie hier zwei Strings eingeben - den gesuchten und die
- gewünschte Ersetzung. Auch hier wird von der Cursorposition in Arbeitsrichtung
- vorgegangen und normalerweise vor jeder Ersetzung beim Benutzer rückgefragt.
-
- Als Alternative zu Find gibt es noch das Look-Kommando. Statt eine Zeichenket-
- te einzugeben, stellen Sie vor dem Drücken von <L> den Cursor auf dem
- Bildschirm auf das gesuchte Wort. Ein Wort wird dabei durch Satzzeichen
- oder Leerzeichen begrenzt. Die Position, an der der Cursor stand, als die
- Look-Funktion ausgelöst wurde, kann danach durch Drücken von <J> und <->
- wieder angesprungen werden.
-
- Look ist besonders nützlich, wenn Sie die Deklaration einer benützten Variable
- oder Prozedur ansehen wollen. Dabei ist wichtig, daß das Look-Kommando anders
- sucht als Find und Replace: Ist die Arbeitsrichtung vorwärts, dann wird stets
- vom Textanfang an gesucht; in der Arbeitsrichtung rückwärts beginnt die Suche
- am Textende. Lösen Sie also Look für eine Variable/Prozedur aus, während die
- Arbeitsrichtung vorwärts eingestellt ist (der Normalfall), dann finden Sie als
- erstes die zugehörige Deklaration. Haben Sie sie gefunden, drücken Sie ESC
- und springen dann mit <J> <-> zurück.
-
- Mit <F6> kann ein erweitertes "Look"-Kommando gestartet werden. Es sucht
- dann den Bezeichner unter dem Cursor nicht im augenblicklichen Text sondern
- in den compilierten Definitionsmodulen (*.DEF) auf den Definitionspfaden des
- Compilers. Wird ein Bezeichner gefunden, der mit dem gesuchten übereinstimmt
- (die Präfix-Option "W(ord find" sowie die Environment-Option "C(ase sensiti-
- vity" sind auch hierbei gültig), wird dieser angezeigt, gefolgt von einem
- Fragezeichen. Nun kann man wählen:
- - /ESC/ oder /Undo/ beenden die Suche.
- - <Y>, /Return/ oder /F1/ laden den zugehörigen Definitionstext (dessen
- Name wird aus dem der compilierten DEF-Datei durch Abschneiden der
- Namensendung auf ein Zeichen. z.B. wird INOUT.DEF zu INOUT.D). Zurück
- in den alten Text gelangen sie durch Schließen des neu eröffneten
- Textpuffers (mit /F4/).
- - /Space/ oder jede andere Taste suchen weiter.
-
- Diese Funktion bietet sich an, um bei bestehenden Programmen die Dokumentation
- einzelner importierter Bezeichner schnell zu finden. Außerdem kann damit
- herausgefunden werden, aus welchem Modul ein Bezeichner zu importieren ist
- und wie seine genaue Schreibweise ist.
-
-
- Präfix-Kommandos für Suchen und Ersetzen
- ----------------------------------------
-
- Leistungsfähig werden Suchen und Ersetzen durch die Möglichkeit, ihre Funktion
- durch Präfix-Kommandos zu verändern. Diese Päfixe tippen Sie vor dem Auslö-
- sen des Kommandos im Edit-Modus - der Editor wertet sie aus, falls anschlie-
- ßend eine Suchfunktion gestartet wird. Mehrere Präfix-Kommandos können
- kombiniert und in beliebiger Reihenfolge eingegeben werden.
-
- Ein Präfix-Kommando kennen Sie schon: den Wiederholungsfaktor, der außer
- den Cursorbewegungen auch die Suchfunktionen beeinflußt. Wird mit einem
- Wiederholungsfaktor <n> gesucht/ersetzt, dann zeigt der Editor die ersten <n>
- gefundenen Vorkommen nicht an bzw. fragt beim Ersetzen nicht nach. Als
- Besonderheit gibt es hier den Wiederholungsfaktor 'unendlich', notiert als </>.
- Er erlaubt das Ersetzen aller gefundenen Worte ohne Rückfrage.
-
- Wollen Sie trotz Angabe eines Wiederholungsfaktors gefragt werden, geben
- Sie zusätzlich den Präfix <V> wie Verify an. Diese Anwendung ist selten; meist
- werden Sie bei Suchen/Ersetzen mit Rückfrage ganz ohne Wiederholungsfaktor
- und Präfix arbeiten.
-
- Wie Wiederholungsfaktor und Verify-Option gesetzt sind, zeigen Ihnen Find und
- Replace bei der Frage nach dem Suchwort in der Kopfzeile an. Hinter dem
- Namen des gewählten Kommandos steht in Klammern der Wiederholungsfaktor
- (Default ist '/') sowie - falls Verify aktiv ist - ein Fragezeichen.
-
- Der Präfix <W> wählt wortweises Suchen: Der Editor akzeptiert nur solche
- Zeichenketten im Text, die mit dem Suchwort übereinstimmen und durch
- Sonderzeichen/Leerzeichen begrenzt sind. 'Haus' wird also nicht gefunden,
- wenn im Text 'Hausboot' auftaucht. Wenn Sie Bezeichner in Modulaprogrammen
- suchen oder Ersetzen wollen, sollten Sie immer wortweises Suchen anwählen.
-
- Der Präfix <S> steht für 'Same' und bewirkt bei Find und Replace, daß der
- Editor nicht erneut nach Zeichenketten fragt, sondern von der aktuellen Cur-
- sorposition nochmals eine Suche nach dem zuletzt benutzten Suchwort beginnt
- bzw. durch die gleiche Zeichenkette ersetzt.
-
- Vor einem Look-Kommando hat Same eine andere Funktion: Gesucht wird dann
- nach dem Wort, auf dem der Cursor steht, aber nicht vom Textanfang/-ende,
- sondern von der Cursorposition an (in Arbeitsrichtung).
-
- Die Benutzung der Präfix-Kommandos ist zunächst etwas gewöhnungsbedürftig, da
- sie Kommandos ohne Prompts oder Meldungen des Editors 'ins Blaue' geschrieben
- werden. Bald werden Sie aber feststellen, daß so eine sehr effiziente Bedienung
- der Suchfunktionen möglich ist. Natürlich können mehrere Präfix-Kommandos mit-
- einander kombiniert werden, indem sie alle in beliebiger Reihenfolge unmittel-
- bar vor dem Suchen/Ersetzen eingegeben werden.
-
- Wenn Sie nicht mehr wissen, welche Prefix-Kommandos Sie nun eingegeben haben,
- können Sie sie jederzeit mit <Esc> alle wieder löschen und dann ggf. nochmal
- eingeben.
-
- Schließlich gibt es noch eine weitere Möglichkeit, die Arbeit der Suchfunktio-
- nen zu beeinflussen: Sie können wählen, ob Groß- und Kleinbuchstaben unter-
- schieden werden sollen oder nicht. Diese 'Case Sensitivity' werden Sie nur
- selten umstellen - je nachdem, ob Sie im Compiler mit oder ohne Case Sensiti-
- vity arbeiten (Compileroption $C) sollten Sie auch die Einstellung im Editor
- wählen. Daher wird diese Funktion nicht über ein Präfix-Kommando gesteuert,
- sondern in der 'Environment'-Anzeige des Editors fest eingestellt.
-
-
- Kopieren
- --------
-
- Bei der Beschreibung des Insert- und Delete-Modus haben Sie bereits erfahren,
- daß alle eingefügten oder gelöschten Passagen in einen Kopierpuffer übernommen
- werden. Genauer: Der Kopierpuffer enthält immer den Text, der mit dem letzten
- ausgeführten Insert- oder Delete-Kommando bearbeitet wurde.
-
- Zum Kopieren von Textstücken fehlt nur noch ein Kommando, mit dem der Inhalt
- des Kopierpuffers wieder in den Text übernommen werden kann. Dazu dient das
- Copy-Kommando: Im Edit-Modus Cursor an die Zielstelle bewegen, <C> wählen und
- als Unterkommando <B> wie Buffer - fertig. Einige Tips zum Copy-Kommando:
-
- * Um einen Text, von dem eine Kopie benötigt wird, in den Kopierpuffer
- hineinzubekommen, wird normalerweise der Delete-Modus benützt und mit
- <ESC> oder <Undo> verlassen. Für längere Passagen kann das Zap-Komman-
- do komfortabler sein: Passage mit Zap löschen, sofort mit Copy Buffer an
- der Original-Stelle wieder einfügen, dann erst an die Zielstelle kopieren.
-
- * Der Kopierpuffer behält seinen Inhalt, wenn die Textebene gewechselt
- wird. (Siehe Abschnitt 'Textebenen' weiter unten!) Damit können Sie
- Passagen aus anderen Dateien in Ihren Text übernehmen: Neue Textebene
- öffnen (<F3>), gewünschte Datei laden (<N>), Text in den Kopierpuffer
- holen (Delete- oder Zap-Kommando), zurück in die alte Ebene (<F4>),
- Textkopie ablegen (<C>, <B>).
-
-
- Tabulatoren
- -----------
-
- Die Anwendung der Tabulatoren bei der Cursorbewegung, bei Texteingabe und
- -löschung ist in den entsprechenden Absätzen beschrieben. Weitere Hinweise
- zur Benutzung der 'Tabs':
-
- * Die Position der gesetzten Tabulatoren wird in der Environment-Übersicht
- angezeigt. Außerdem kann mit der Taste <K> eine Tabulator-Anzeige anstelle
- der Kopfzeile an- und abgeschaltet werden.
-
- * Die komplette Tabulator-Belegung kann mit dem Tab-Unterkommando des Environ-
- ments neu gesetzt werden: Nach <T> eine Zeile beliebiger Zeichen eingeben, die
- an allen gewünschten Tabulatorpositionen ein 'T' enthält. Insbesondere lassen
- sich durch <T> <Leertaste> <Return> alle Tabs löschen oder durch Eingabe einer
- Zahl (zw. 1 und 80) die Tabs auf alle Vielfachen dieses Wertes setzen.
-
- * Zum Setzen und Löschen einzelner Tabulatoren kann im Edit-Modus <F2>
- verwendet werden. Dieses Kommando setzt bzw. löscht einen Tabulator in der
- Cursorspalte.
-
-
- Marken (Tags) und Sprünge
- -------------------------
-
- Als Orientierungshilfe im Text können Sie an Stellen, die Sie schnell wieder-
- finden möchten, Marken (Tags) setzen. Nach dem Tag-Kommando <T> können Sie
- eine Ziffer von 0 bis 9 oder einen Buchstaben als Name der Marke eingeben;
- diese Marke wird dann an die Cursorposition gesetzt (bleibt unsichtbar). Eine
- Liste der bisher benutzten Marken in einem Text zeigt die 'Environment'-Über-
- sicht.
-
- Um den Cursor auf eine Marke zu bewegen, geben Sie das Jump-Kommando <J>
- gefolgt vom Markennamen ein. Außerdem bietet Jump eine Reihe von Zusatzfunk-
- tionen:
-
- * Die Marken B und E sind fest auf Beginn und Ende des Textes gesetzt;
- sie können ebenfalls über Jump erreicht werden.
-
- * Die Marke L steht immer für die letzte Position, an der eingefügt oder
- gelöscht wurde. (Dies ist auch die Position, die das Zap-Kommando als
- Bereichsgrenze verwendet.)
-
- * Durch Eingabe von <-> oder <+> anstelle einer Marke können Sie auf
- das 'Langzeitgedächtnis' des Editors zurückgreifen: Die letzten 16
- Textpositionen, an denen durch irgendeine Funktion etwas verändert oder
- das Look-Kommando verwendet wurde, werden gespeichert. <-> führt Sie in
- dieser Liste weiter in die Vergangenheit zurück, <+> wieder in Richtung
- auf die jüngste Änderung. Verlassen Sie diesen Modus mit einer anderen
- Taste, z.B. <ESC> oder <Return>.
-
- * Die Marke <?> wird automatisch auf die Fehlerposition gesetzt, wenn der
- Editor nach einem Laufzeit- oder Compilierfehler gestartet wurde. Wenn
- Sie diese Marke anspringen, wird auch die Fehlerbeschreibung nochmals
- eingeblendet.
-
- Haben Sie eine Marke B, E oder L gesetzt und wollen sie anspringen, geben
- Sie nach <J> erst <Leertaste> ein, bevor sie die gewünschte Marke tippen.
-
- Um an eine bestimmte Zeilennummer zu springen, brauchen Sie nur die Zahl
- im Edit-Modus einzutippen und dann das Kommando <J> aufzurufen.
-
- Mit dem Kommando <?> können Sie sich übrigens die aktuelle Zeilennummer
- anzeigen lassen.
-
-
- Formatierung
- ------------
-
- Drei Kommandos helfen Ihnen bei der Formatierung Ihrer Texte:
-
- Adjust dient zum Verändern der Einrückungen in Programmen. Mit <A> rufen Sie
- den Adjust-Modus auf und haben jetzt folgenden Funktionen zur Verfügung:
-
- * <Pfeil links>, <Pfeil rechts> verschieben die Textzeile, in der der Cursor
- steht, um jeweils ein Zeichen.
-
- * <L> macht die Zeile linksbündig.
-
- * <Pfeil hoch>, <Pfeil runter>, <Return> bewegen den Cursor wie üblich.
- Dabei wird die erreichte Zeile jeweils um den gleichen Betrag verschoben
- wie die vorige. Spielen Sie doch mal mit dem Adjust-Modus: So können
- ganze Blöcke eingerückt werden (etwa, um einen Programmteil in eine
- Schleife einzubetten); die relative Position der verschobenen Zeilen
- zueinander bleibt erhalten.
-
- <B>reak trennt eine Zeile hinter dem Wort, auf dem der Cursor steht, durch
- Einfügen eines <Return>-Codes. Ein Wort wird durch Satz- oder Leerzeichen
- begrenzt. Ausnahme: Steht der Cursor auf dem ersten Buchstaben eines
- Wortes, dann wird vor dem Wort getrennt. Falls an der Trennstelle ein oder
- mehrere Leerzeichen stehen, werden diese entfernt.
-
- <G>lue 'klebt' entsprechend zwei Zeilen wieder zusammen, entfernt also den
- <Return>-Code am Ende der Zeile, in der der Cursor steht. Außerdem werden
- überschüssige führende Leerzeichen der angehängten Zeile entfernt; vor der
- angehängten Zeile wird genau ein Leerzeichen eingefügt.
-
-
- Textebenen
- ----------
-
- Der Editor kann nach Art eines Stacks mehrere Texte gleichzeitig verwalten.
- Bearbeiten können Sie jeweils den obersten Text auf dem Stack; wenn Sie die
- Arbeit an diesem Text abschließen, erscheint das darunterliegende Dokument
- wieder, der vorher aufgelegte Text geht verloren. Diese Funktion ist besonders
- nützlich, um beim Edieren eines Textes in anderen Dateien etwas nachzusehen
- oder Passagen aus anderen Dateien zu kopieren (siehe Abschnitt 'Kopieren').
-
- <F3> eröffnet eine neue Textebene - der Editor 'versteckt' das gerade bear-
- beitete Dokument und beginnt im Edit-Modus ein neues, leeres Dokument. In der
- Kopfzeile wird die neue, höhere Textebene angezeigt. Sie können jetzt z.B. mit
- dem New-Kommando eine Datei in den Editor holen und bearbeiten.
-
- <F4> verläßt die aktuelle Textebene und verwirft den dort bearbeiteten Text -
- diese Taste ist also nichts anderes als eine Abkürzung für Quit, Exit. Genau
- wie bei dieser Tastenkombination fragt der Editor nach, falls der bearbeitete
- Text verändert wurde. Tatsächlich können Sie auch die Quit-Kommandos
- benutzen, um zur nächsttieferen Textebene zurückzukehren - gesperrt sind
- allerdings die Unterkommandos, die den anschließenden Start des Compilers
- bewirken würden.
-
-
- Das Environment
- ---------------
-
- Der Editor verwaltet zu jedem Text eine Reihe von Zusatzinformationen - dazu
- gehören z.B. die oben beschriebenen Marken, die Stellung der Tabulatoren, die
- Einstellung der 'Case Sensitivity' für die Suchkommandos. Diese 'Arbeitsumge-
- bung' des Editors wird engl. 'Environment' genannt. Der Editor zeigt diese
- internen Informationen an, wenn Sie das Environment-Kommando <E> geben.
- Sie sehen dann:
-
- * Die Meldung "Last changes have not been saved yet", falls Änderungen
- am Text vorgenommen wurden und der Text noch nicht wieder gespeichert
- wurde.
-
- * Name der Textdatei für Speicheroperationen aus dem Quit-Untermenu
- (dort kann dieser Name auch geändert werden).
-
- * Such- und Ersetzungsbegriff für Find- und Replacekommando. Beide
- können durch Anwählen des Menüpunkts <O>ld bzw. <N>ew auch verändert
- werden - evtl. hilfreich bei langen Zeichenketten, wenn nur eine verändert
- werden soll. Danach mit Same-Option das Suchkommando aufrufen. <F>lip
- vertauscht Such- und Ersetzungsbegriff, wenn eine Ersetzung rückgängig
- gemacht werden soll.
-
- * <A>uto Backup Flag gibt an, ob bei allen Speicheroperationen automatisch
- die alte Version des Textes in 'name.BAK' umbenannt werden soll. Anwählen
- des Menüpunkts Auto Backup schaltet dieses Flag um.
-
- * <I>ncrement Version Flag bestimmt, ob vor allen Speicheroperationen
- automatisch im Text nach einer Versionsnummer der Form 'V#' digit (be-
- liebig viele Dezimalstellen hinter dem Kopf V#) gesucht und diese erhöht
- werden soll.
-
- * <C>ase Sensitivity Flag gibt an, ob Find, Replace und Look beim Suchen
- Groß- und Kleinschrift unterscheiden sollen. Welche Einstellung sinnvoll
- ist, hängt i.A. davon ab, ob Sie im Compiler mit Unterscheidung arbeiten
- wollen (Modula-Standard) oder nicht.
-
- * Wenn Sie Quelltexte für den Megamax Modula-Compiler bearbeiten,
- empfiehlt es sich, das <Q>uick save & load-Flag einzuschalten. Damit
- werden die Texte schneller gespeichert und wieder geladen, da sie
- im Editor-internen Format abgelegt werden und somit das wiederholte
- Hin- und Rückwandeln des Formats ausgelassen wird. Die so gespeicherten
- Dateien lassen sich nicht ausdrucken oder mit anderen Editoren weiter-
- bearbeiten - nur der Modula-Compiler kann dieses Format korrekt inter-
- pretieren. Soll der Text wieder im normalen Format in der Datei vorliegen,
- ist er mit einfach ausgeschaltetem <Q>uick save & load-Flag zu speichern.
-
- * <S>ave Editor-Info-Line bestimmt, ob die im Environment angezeigten In-
- formationen mit dem Text zusammen gespeichert werden sollen. Auch die
- Positionen der letzten Änderungen (mit Jump zu erreichen) werden gespei-
- chert. Ist diese Funktion eingeschaltet, dann hängt der Editor an den
- gespeicherten Text eine Kommentarzeile an, in der die Informationen
- kodiert sind. Der Compiler ignoriert diese Zeile; in Ausdrucken oder
- anderen Editoren erscheint sie allerdings. Zumindest während der Ent-
- wicklung eines Programms ist es hilfreich, die Info-Zeile zu speichern.
-
- * In der Tags-Zeile werden alle Marken aufgelistet, die z.Zt. definiert
- sind.
-
- * Unter dem Menüpunkt "Tab setting" können Sie die Tabulatorstellung
- sehen und verändern, wie im Abschnitt 'Tabulatoren' beschrieben wurde.
-
-
- Direktes Compilieren
- --------------------
-
- Statt den Text zum Compilieren mit <Q>, <C> abzuspeichern und den Compiler
- dann zu starten, kann auch der Text im Speicher bleiben und der Compiler
- direkt vom Editor aus gestartet werden. Dazu ist lediglich <F5> zu drücken.
- Dann wird der Compiler gestartet, ohne daß er die üblichen Ausgaben auf
- dem Bildschirm macht. Stattdessen wird nur in der Statuszeile 'Compiling...'
- angezeigt. Tritt ein Fehler auf, wird der Cursor an die Fehlerposition
- gesetzt und die Fehlemeldung in der Statuszeile angezeigt. Tritt kein
- Fehler auf, wird der erzeugte Code des Moduls auf dem Pfad abgespeichert,
- der als erster in der entsprechenden Pfadliste steht. Die aktuelle Ein-
- stellung des Ausgabepfades in der Shell unter 'Compiler-Optionen' kann
- nicht berücksichtigt werden. Es ist nicht erlaubt, auf diese Weise Module
- zu compilieren, die andere Dateien per Include-Anweisung ($I-Option) ein-
- beziehen, in solch einem Fall wird eine Fehlermeldung angezeigt. <F5>
- bietet sich dann an, wenn nach längeren Änderungen im Quelltext mit
- mehreren Syntaxfehlern zu rechnen ist. In diesem Fall verkürzt sich die
- Bearbeitungszeit der Korrekturen merklich.
-
-
- Report über Änderungen seit Version 2.C
- ---------------------------------------
-
- Version 2.E:
-
- - Der Name des Editors ist nun 'GEP_ED.MOD' (bisher 'GEP_ED.MOS')
-
- - Mit dem Maus-Zeiger und der linken Maus-Taste kann der Text-Cursor
- positioniert werden. Befindet sich der Maus-Zeiger ganz am oberen
- oder unteren Bildschirmrand, wird der Text ab- oder aufgeschoben.
-
- - Die Dateiwahl erfolgt nun mithilfe der GEM-Dateiselektions-Box.
-
- - Der Editor wird nicht mehr verlassen, wenn beim Abspeichern ein
- Fehler auftritt (z.B., wenn die Disk voll ist).
-
- - Der Rechner "hängt" nicht, wenn mit bestimmten Funktionen (z.B. Wort
- rechts) über den Textstart oder dessen Ende hinweg im Delete-Modus
- gelöscht wird.
-
- - Ebenfalls kommt es zu keinem Programmabsturz, wenn eine neu einzule-
- sende Textdatei größer als der verbleibende freie Speicher ist.
-
- - Beim Backup-Erzeugen wird der Dateiname der Kopie auch korrekt erzeugt,
- wenn sich das Original in einem Unterverzeichnis befindet, in dessen
- Name ein Punkt vorkommt.
-
- - Wird die Editor-Info-Zeile mit gespeichert, wird zwischen Text und
- dieser speziellen Kommentarzeile ein EOF-Zeichen (Ctrl-Z) eingefügt.
-
- - Es wird nicht mehr automatisch die Extension '.TXT' an den Dateinamen
- angefügt, wenn beim Dateinamen keine Endung angegeben ist.
-
- - Die Tabulatoren können nun in einfacher in gleichmäßigen Abständen
- gesetzt werden. Dazu ist einfach der Wert für den gewünschten Abstand
- bei der "Tab setting"-Eingabe im Environment einzugeben.
-
- - Beim Speichern und Laden von langen Texten benötigt der Editor viel
- Zeit zum Umwandeln des Textes in sein eigenes Format. Diese Umwandlung
- läßt sich abstellen mit dem "Q(uick save & load"-Flag im Environment.
- Der Editor speichert dann den Text in seinem eigenen Format ab und kann
- ihn dann auch beim nächsten Mal schneller einladen. Der Megamax-Modula-2
- Compiler kann dieses komprimierte Dateiformat korrekt auswerten, sodaß
- es sich anbietet, bei Modula-Programmen diese Option zu aktivieren.
- Für die Interessierten hier die Formatbeschreibung: Die Textzeilen als
- solche sind unverändert; am Zeilenende befindet sich nur ein CR, jedoch
- kein LF; am Zeilenbeginn werden alle führenden Leerzeichen durch den
- DLE-Code (CHR(20)) und einem darauf folgenden Zeichen mit dem Wert von
- der Anzahl der Leerzeichen plus 32 ersetzt.
-
- - Das Drucken des gesamten Textes, des Bildschirms oder des Kopierpuffers
- ist mit der H(ardcopy-Funktion möglich.
-
- - Nach Benutzung des L(ook-Kommandos kann mit J(ump und der Minus-Taste
- zurück an die Stelle gesprungen werden, von der aus die L(ook-Funktion
- ausgelöst wurde.
-
- - Mit Ctrl-<Pfeil auf> und Ctrl-<Pfeil ab> kann der Text gescrollt werden,
- auch wenn der Cursor nicht in der obersten oder untersten Zeile steht.
-
- - Ein rückwärtiger Tab-Sprung ist neben Ctrl-Q nun auch mit Ctrl- oder
- Shift-Tab möglich.
-
- Version 2.I:
-
- - Mit F6 kann ein erweitertes "Look"-Kommando gestartet werden, bei
- dem der Bezeichner unter dem Cursor in den DEF-Dateien gesucht wird.
- Näheres siehe im Kapitel "Suchen und Ersetzen".
-
-
- Übersicht: Editor-Kommandos
- ---------------------------
-
- Cursorbewegung
-
- Pfeiltasten bewegen Cursor um je ein Zeichen
- Pfeiltasten mit <Shift> bewegen Cursor wort- bzw. seitenweise
- Pfeiltasten mit <Control> bewegen Cursor an Zeilenbeginn/-ende bzw. scrollen
- <Tab>, <Shift>-<Tab> nach rechts, links zum nächsten Tabulator
- <Return> zum Anfang der nächsten Zeile in Arbeitsrichtung
- P(age, O(pposite 20 Zeilen vor, zurück
- M(iddle, <Home> Cursorzeile in die Bildschirmmitte
- linke Maustaste setzt Cursor auf Mauszeiger. Dauerbetätigung
- an vertikalen Bildrändern scrollt den Text.
-
- Eingeben, Löschen, Ändern
-
- I(nsert Einfügemodus starten
- D(elete Löschmodus starten
- Z(ap Lösche von letzter Position bis Cursor
- eX(change Änderungsmodus starten
- C(opy Einfügen von Kopierpuffer
-
- Suchen, Ersetzen, Springen
-
- F(ind Suchen einer Zeichenfolge
- R(eplace Ersetzen einer Zeichenfolge durch andere
- L(ook Suchen einer Zeichenfolge aus dem Text
- W(ord Präfix: Folgen zwischen Sonderzeichen suchen
- S(ame Präfix: gleiche Zeichenfolge nochmals suchen
- V(erify Präfix: trotz Wiederholungsfaktor nachfragen
- / Präfix: Maximaler Wiederholungsfaktor
-
- T(ag setzt Marke an Cursorposition
- J(ump springt auf Zeile, Marke, Textende, Fehlerposition
-
- Formatieren
-
- A(djust Einstellen des linken Randes
- G(lue Zeile mit Folgezeile zusammenfügen
- B(reak Zeile an Cursorposition trennen
-
- Sonstiges
-
- ? Anzeigen der Speicherbelegung und der Textposition
- Q(uit Editor verlassen, Speicher-Menü
- N(ew neue Textdatei laden
- E(nvironment Editor-Status anzeigen und ändern
- H(ardcopy Text/Seite/Puffer drucken
- K Tabulatoren in Statuszeile zeigen
- F2 Tabulator setzen / entfernen
- F3, F4 Öffnen, schließen neuen Textpuffer ("Frame")
- F5 Compiler aufrufen
- F6 Bezeichner in Bibliothek suchen (ähnlich "L(ook")
-
- -----------------------
- Ende der Dokumentation.
- -----------------------
- ə